package com.whu.waterworks.service;

import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.whu.waterworks.dao.StationnumpositionDAO;
import com.whu.waterworks.model.Stationnumposition;

public class StationnumpositionService {
	private StationnumpositionDAO stationnumpositionDAO;
	private boolean flag=false;
	/**
	 * 根据水厂编码得到所有站点
	 * @author wangying
	 * @param StationnumpositionCode
	 * @return
	 */
	public List<Stationnumposition> findAll(String StationnumpositionCode)
	{
		//System.out.println();
		return stationnumpositionDAO.findAll(StationnumpositionCode);
	}
	
	public Stationnumposition findStationById(String id)
	{
		return stationnumpositionDAO.findById(id);
	}

	public StationnumpositionDAO getStationnumpositionDAO() {
		return stationnumpositionDAO;
	}

	public void setStationnumpositionDAO(StationnumpositionDAO stationnumpositionDAO) {
		this.stationnumpositionDAO = stationnumpositionDAO;
	}
	
	public String addStationnumposition(Stationnumposition stationnumposition,String waterPlantCode){
    	String message=""; 		
    	System.out.println("提交开始");
    	System.out.println("提交开始");
    	//是否有水厂
    	if(null!=waterPlantCode && !waterPlantCode.equals("")){
    		String waterPlant=waterPlantCode.substring(0,6)+waterPlantCode.substring(9,12)+"00";
    		if(null==stationnumpositionDAO.findById(waterPlant)){
    			Stationnumposition wp=new Stationnumposition();
    			wp.setStationnum(waterPlant);
    			wp.setPositionname("水厂");
    			stationnumpositionDAO.save(wp);
    		}
    	}    	
		if(null!=stationnumposition.getStationnum() && !stationnumposition.getStationnum().equals("")){
			System.out.println("update");
			stationnumpositionDAO.update(stationnumposition);				
		}
		else{
			//新增			
			stationnumposition.setStationnum(createStationCode(waterPlantCode));
			stationnumpositionDAO.save(stationnumposition);				
		}			
		message="提交成功！";
		return message;
    }
    
    public String getInitDataOfStationnumposition(){    	
		 String jonsStrOfName="";		
		 JSONArray jArray = new JSONArray();
		 JSONObject jsonObj;
		 List<Stationnumposition> rsStationnumposition=stationnumpositionDAO.getAllStation();			
		 for(int i=0;i<rsStationnumposition.size();++i){
			 jsonObj=new JSONObject();
			 jsonObj.put("id", rsStationnumposition.get(i).getStationnum());
			 jsonObj.put("name", rsStationnumposition.get(i).getPositionname());
			 jArray.add(jsonObj);
		 }
		System.out.println(rsStationnumposition.size());
		Stationnumposition stationnumposition=stationnumpositionDAO.getStationOfMaxCode();
		jsonObj=new JSONObject();
		//jsonObj.put("phonenum", stationnumposition.getPhonenum());
		//jsonObj.put("positionname", stationnumposition.getPositionname());
		//jsonObj.put("stationnum", stationnumposition.getStationnum());
		jsonObj=JSONObject.fromObject(stationnumposition);
		jsonObj.put("waterPlantCode", stationnumposition.getStationnum().substring(0,6)+"0000"+stationnumposition.getStationnum().substring(7,9));
		//jsonObj=JSONObject.fromObject(Stationnumposition);
		jArray.add(jsonObj);
		jonsStrOfName=jArray.toString();
		return jonsStrOfName;
    }
    
    public String delStationnumposition(Stationnumposition Stationnumposition){
    	 String message="";     	
    	 //stationnumpositionDAO.delete(Stationnumposition);
    	 message="监测点有检查数据，不允许删除！";
		 System.out.println("delStationnumposition end");		 
		 return message;
    }
    
    //给Station编码420583032-01
    public String createStationCode(String waterPlantCode){
    	//StringBuilder code=new StringBuilder("42058300");
    	StringBuilder code=new StringBuilder(waterPlantCode.substring(0,6)+waterPlantCode.substring(9,12));
    	String maxCode="";
    	int temp=0;    	
		//maxCode=irrBRStadiaDao.getCreateStationnumpositionCode(code.toString());
    	maxCode=stationnumpositionDAO.getMaxStationByWaterPlantCode(code.toString());
		if(null==maxCode){
			code.append("01");
			return code.toString();
		}
		String pro="00";
		temp=Integer.valueOf(maxCode.substring(9))+1;		
		int tempLen=String.valueOf(temp).length();
		code.append(pro.substring(0, 2-tempLen));	
		code.append(temp);
		System.out.println(code.toString());
		return code.toString();    	
    }
    
    public List<Stationnumposition> getAllStation(){
    	return stationnumpositionDAO.getAllStation();    	
    }
    
    public Stationnumposition getStationOfMaxCode(){
    	return stationnumpositionDAO.getStationOfMaxCode();
    }

}
